<html>
<head><meta charset="utf-8"><title>Renaming `Kind` · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html">Renaming `Kind`</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="171255385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171255385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171255385">(Jul 19 2019 at 13:07)</a>:</h4>
<blockquote>
<p>Sorry, I was referring to the type theory notion of "kind", not the Kind in rustc... which we should already rename to Term or something (idk if there is a discussion somewhere).</p>
</blockquote>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/subst/enum.UnpackedKind.html" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/ty/subst/enum.UnpackedKind.html">This compiler type</a> is, in type-theoretic terms, something like <code>exists k: kind, thing_of_kind k</code>. I would expect that a <code>Kind</code> would be defined as <code>enum Kind { Lifetime, Type, Const }</code>.</p>
<p>Should we rename the rustc thing to align the terms with type theory/PL? Or are there other contexts in which rustc's use of "kind" is correct?</p>



<a name="171255389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171255389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171255389">(Jul 19 2019 at 13:07)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> ^</p>



<a name="171255452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171255452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171255452">(Jul 19 2019 at 13:08)</a>:</h4>
<p>I was not sure what to propose as a name, but "term" seems good -- way better than "kind", for sure</p>



<a name="171255491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171255491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171255491">(Jul 19 2019 at 13:08)</a>:</h4>
<p>yeah I just didn't know any better when I added Kind</p>



<a name="171255514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171255514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171255514">(Jul 19 2019 at 13:09)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="121053">@varkor</span> and/or <span class="user-mention" data-user-id="126931">@centril</span> have seen this "Term" idea before but idk where the discussion was</p>



<a name="171256153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171256153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171256153">(Jul 19 2019 at 13:17)</a>:</h4>
<p>the problem with "term" is that it usually refers to a term of a type, which is only one particular case here</p>



<a name="171256219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171256219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171256219">(Jul 19 2019 at 13:18)</a>:</h4>
<p>maybe something longer like "KindTerm"</p>



<a name="171257325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171257325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171257325">(Jul 19 2019 at 13:32)</a>:</h4>
<p>eh</p>



<a name="171257334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171257334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171257334">(Jul 19 2019 at 13:32)</a>:</h4>
<p>in a good language <code>Type</code> is a term of type <code>Type1</code> or w/e :P</p>



<a name="171257337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171257337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171257337">(Jul 19 2019 at 13:33)</a>:</h4>
<p>and so on and so forth</p>



<a name="171264766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171264766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171264766">(Jul 19 2019 at 15:02)</a>:</h4>
<p>hm yeah I guess a term is usually something that has a type, whereas we are looking for a name for "something that has a kind"</p>



<a name="171264796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171264796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171264796">(Jul 19 2019 at 15:03)</a>:</h4>
<p>I hate that we even need this discussion Q_Q</p>



<a name="171264846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171264846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171264846">(Jul 19 2019 at 15:03)</a>:</h4>
<p>/me shakes fist at academia for not making this easier</p>



<a name="171264964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171264964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171264964">(Jul 19 2019 at 15:04)</a>:</h4>
<p>we could call it something dumb like LoToC or ToLoC</p>



<a name="171264969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171264969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171264969">(Jul 19 2019 at 15:04)</a>:</h4>
<p>"lifetime or type or const"</p>



<a name="171264987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171264987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171264987">(Jul 19 2019 at 15:04)</a>:</h4>
<p>"To" is ambiguous tho, maybe <code>TorLorC</code> is better</p>



<a name="171265051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171265051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171265051">(Jul 19 2019 at 15:05)</a>:</h4>
<p>Or maybe give it a little love and call it "TLC"?</p>



<a name="171265223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171265223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171265223">(Jul 19 2019 at 15:07)</a>:</h4>
<p>Guess I should have added an explanatory link for the acronym: <a href="https://dictionary.cambridge.org/us/dictionary/english/tlc" target="_blank" title="https://dictionary.cambridge.org/us/dictionary/english/tlc">https://dictionary.cambridge.org/us/dictionary/english/tlc</a></p>



<a name="171266448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171266448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171266448">(Jul 19 2019 at 15:20)</a>:</h4>
<blockquote>
<p>/me shakes fist at academia for not making this easier</p>
</blockquote>
<p>academia shakes fist back -- naming is hard ;)</p>



<a name="171266513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171266513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171266513">(Jul 19 2019 at 15:21)</a>:</h4>
<p>"KindedTerm" I think would be closer to how I would call this in a paper</p>



<a name="171267887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171267887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171267887">(Jul 19 2019 at 15:37)</a>:</h4>
<p>/me hmm, "kindled"</p>



<a name="171267940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171267940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171267940">(Jul 19 2019 at 15:38)</a>:</h4>
<p>more seriously, <code>KindedTerm</code> is fine with me :D</p>



<a name="171268029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171268029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171268029">(Jul 19 2019 at 15:39)</a>:</h4>
<p>for any German speaker who's reading, I'd like to relay this one (when I asked elsewhere about this question):<br>
"thing that has a kind" -- parent</p>



<a name="171268115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171268115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171268115">(Jul 19 2019 at 15:40)</a>:</h4>
<p>For anyone else, <a href="https://www.dict.cc/?s=kind" target="_blank" title="https://www.dict.cc/?s=kind">here is a hint</a>.</p>



<a name="171269261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171269261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171269261">(Jul 19 2019 at 15:55)</a>:</h4>
<p>seems like there is some literature where this is called a "type expression"</p>



<a name="171269265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171269265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171269265">(Jul 19 2019 at 15:55)</a>:</h4>
<p>but I somehow find that a strange term to use</p>



<a name="171270922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171270922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171270922">(Jul 19 2019 at 16:17)</a>:</h4>
<p>I've seen "expression" used to refer to the syntax used to create a "term"</p>



<a name="171270932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171270932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171270932">(Jul 19 2019 at 16:17)</a>:</h4>
<p>so a type expression would evaluate to a type term</p>



<a name="171270950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171270950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171270950">(Jul 19 2019 at 16:17)</a>:</h4>
<p>and terms are defined as values whereas expressions can compute (to reach a value)</p>



<a name="171271002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/Renaming%20%60Kind%60/near/171271002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/Renaming.20.60Kind.60.html#171271002">(Jul 19 2019 at 16:18)</a>:</h4>
<p>(but this might vary a lot between situations)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>